package main

import (
	"fmt"
	"strings"
)

/*
go定义数据：
 1. var 变量名 数据类型 = xxx
 2. 变量名 := xxx
 3. var 变量名 = xxx
*/
func main() {

	var num int = 10
	// %v 打印值，  %T 打印类型
	fmt.Printf("%v,%T\n", num, num)
	fmt.Println("---------------------")
	/*
		ps:
			有符号：int8 int16 int32 int64  ==> 区间范围 (±2的7次方-1， 15次方， 31次方， 63次方)
			无符号：uint8 uint16 uint32 uint64  ==> 区间范围 (0 -- 2的8次方-1， 16次方， 32次方， 64次方)
			其他无变化
	*/

	// float   %f  六位小数， 四舍五入
	var b float32 = 3.12
	fmt.Printf("%v----%f, %T\n", b, b, b)

	fmt.Println("---------------------")
	var c float64 = 3.12
	fmt.Printf("%v----%f, %T\n", c, c, c)
	fmt.Println("---------------------")
	var d float64 = 3.1415926535
	fmt.Printf("%v----%f, %T\n", d, d, d)

	fmt.Println("---------------------")
	// 拼接字符串
	str1 := "Hello"
	str2 := "World"
	str3 := fmt.Sprintf("%v-%v", str1, str2)
	fmt.Printf("%v", str3)
	fmt.Println("---------------------")
	// 分割字符串

	str4 := "123-456-789"
	arr := strings.Split(str4, "-")
	fmt.Println(arr)
	fmt.Println(arr[0])
	fmt.Println("---------------------")
	// 切片连接字符串
	str5 := strings.Join(arr, "+++")
	fmt.Println(str5)
	fmt.Println("---------------------")

	// 判断包含
	str6 := "Hello World"
	str7 := "Hello"
	str8 := "123"

	flag1 := strings.Contains(str6, str7)
	flag2 := strings.Contains(str6, str8)
	fmt.Println(flag1)
	fmt.Println(flag2)
	fmt.Println("---------------------")

	// 相同前缀  and 相同后缀  strings.HasPrefix() and string.HasSuffix()
	// 使用方法与包含一致

	// 出现位置  strings.index()  strings.LastIndex()  从前往后 and 从后往前

}
